<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    

<script>
// Promise的状态和结果
// Promise对象的状态只能改变一次！！！

let p1 = new Promise((resolve,reject)=>{// 执行器函数，同步执行
    // 1.情况1，不执行任何改变状态的操作
    // console.log( '执行器函数被调用。。。' );

    // 2.情况2
    // resolve();

    // 3.情况3
    // resolve(123);

    // 4.情况4
    // reject();

    // 5.情况5
    // reject(456);

    // 6.情况6
    // console.lag( 'hello' );

    // 7.情况7
    // throw new Error('出错啦！');

    // 8.情况8
    throw 789;

    // 执行器函数中执行return语句不会改变状态和结果
    // return false;
    // return 666;
})

// 情况1：进行中状态，结果为undefined
// console.log( p1 );// Promise {<pending>: undefined}

// 情况2：成功状态，结果为undefined
// console.log( p1 );// Promise {<fulfilled>: undefined}

// 情况3：成功状态，结果为123
// console.log( p1 );// Promise {<fulfilled>: 123}

// 情况4：失败状态，结果为undefined
// console.log( p1 );// Promise {<rejected>: undefined}

// 情况5：失败状态，结果为456
// console.log( p1 );// Promise {<rejected>: 456}

// 情况6：失败状态，结果为报错信息
// console.log( p1 );// Promise {<rejected>: 报错信息}

// 情况7：失败状态，结果为抛出的报错
// console.log( p1 );// Promise {<rejected>: 抛出的报错}

// 情况8：失败状态，结果为789
console.log( p1 );// Promise {<rejected>: 789}

</script>
</body>
</html>